package com.sky.mapper;

import com.sky.dto.ShoppingCartDTO;
import com.sky.entity.ShoppingCart;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface ShoppingCartMapper {

  /**
   * 添加购物车
   * @param shoppingCart
   */
  @Insert("insert into shopping_cart (name, image, user_id, dish_id, setmeal_id, dish_flavor, number, amount, create_time) VALUES " +
      "(#{name}, #{image}, #{userId}, #{dishId}, #{setmealId}, #{dishFlavor}, #{number}, #{amount}, #{createTime})")
  void insert(ShoppingCart shoppingCart);
  
  /**
   * 修改购物车
   * @param shoppingCart
   */
  void update(ShoppingCart shoppingCart);
  
  /**
   * 查询购物车
   * @param shoppingCart
   */
  List<ShoppingCart> list(ShoppingCart shoppingCart);
  
  
  /**
   * 从购物车内移除指定的商品。
   * @param id
   */
  @Delete("delete from shopping_cart where id = #{id}")
  void delete(Long id);
  
  
  /**
   * 清空指定用户的购物车。
   */
  @Delete("delete from shopping_cart where user_id = #{userId}")
  void deleteByUserId(Long userId);
  
  /**
   * 批量插入购物车数据
   * @param shoppingCartList
   */
  void insertBatch(List<ShoppingCart> shoppingCartList);
}
